home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 24 / AACD 24.iso / AACD / Utilities / Workbench2000 / Goodies / Tools / Vapor2WB2KMimeCnvrt.rexx < prev    next >
OS/2 REXX Batch file  |  2000-09-17  |  4KB  |  154 lines

  1. /*
  2. **  $VER: Vapor2WB2KMimeCnvrt.rexx 0.001 (15 Sep 2000)  Andreas Mixich <sp.amix@gmx.net>
  3. **
  4. **        © 2000 Andreas Mixich
  5. **
  6. **  PROGRAMNAME:
  7. **      Vapor2WB2KMimeCnvrt.rexx
  8. **
  9. **  FUNCTION:
  10. **      Converts Vapor's MIMEPrefs settings to WB2000 format. Icon information
  11. **      has to be entered by hand later, in the WB2000 MIME Editor.
  12. **
  13. **  $HISTORY:
  14. **
  15. **   15 Sep 2000 : 0.01 : initial release
  16. */
  17.  
  18.  
  19. /* ///------------------- "Init,ReadArgs,Setvars,AddLibs" -------------------- */
  20.  
  21. /* enable support functions */
  22. SIGNAL ON ERROR
  23. SIGNAL ON FAILURE
  24. SIGNAL ON HALT
  25. SIGNAL ON BREAK_C
  26. SIGNAL ON SYNTAX
  27.  
  28. OPTIONS RESULTS
  29.  
  30. /* define some usefull vars */
  31. TRUE        = 1
  32. FALSE       = 0
  33. LF          = '0A'x         /* linefeed         */
  34. appname     = 'Vapor2WB2KMimeCnvrt.rexx'            /* program's name   */
  35. appversion  = '$VER: Vapor2WB2KMimeCnvrt.rexx 0.001 (15 Sep 2000) Andreas Mixich <sp.amix@gmx.net>'
  36. appauthor   = 'Andreas Mixich <sp.amix@gmx.net>'
  37. appcopyr    = '© 2000 Andreas Mixich <sp.amix@gmx.net>'
  38. ArgsTemplate = "FROM,TO"
  39. argu.FROM   = 'envarc:mime.prefs'
  40. argu.TO     = 'RAM:WB2000_MIME.prefs'
  41. nsuffix     = ''
  42.  
  43. /* add the needed libraries */
  44. IF ~SHOW('LIBRARIES','rexxdossupport.library') THEN
  45.     CALL ADDLIB('rexxdossupport.library',0,-30,0)
  46. IF ~SHOW('LIBRARIES','rexxsupport.library') THEN
  47.     CALL ADDLIB('rexxsupport.library',0,-30,0)
  48.  
  49.  
  50. PARSE ARG argu
  51. IF strip(argu) = '?' THEN
  52.     DO
  53.     Call WriteCH(STDOUT,argstemplate||' : ')
  54.     argu = ReadLN(STDIN)
  55.     END
  56. IF ~ReadArgs(argu,ArgsTemplate,'argu.') THEN
  57.     DO
  58.     Call WriteLN(STDOUT,Fault(RC)||' '||appname)
  59.     EXIT(10)
  60.     END
  61.  
  62.  
  63. /*\\\*/
  64. /* ///-------------------------------- "Main" -------------------------------- */
  65. IF ~Open(in,argu.FROM,R) THEN
  66.     DO
  67.         SAY "File "||argu.FROM||" not found. Exiting."
  68.         EXIT(20)
  69.     END
  70. ELSE
  71.     DO i = 1 UNTIL EOF(in)
  72.         line.i = ReadLN(in)
  73.         PARSE VAR line.i group.i '/' type.i ',' suffix.i ',' savepath.i ',' utility.i ',' .
  74.     END
  75.  
  76.     line.0 = i - 1
  77.  
  78.     IF Exists(argu.TO) THEN
  79.         DO
  80.             SAY "Warning ! The file "||argu.TO||" will be overwritten !"
  81.             OPTIONS PROMPT "Proceed ? (y/N)"
  82.             PULL dummy
  83.             IF dummy ~= "Y" THEN
  84.                 DO
  85.                     SAY "Operation aborted. Exiting."
  86.                     EXIT
  87.                 END
  88.         END
  89.  
  90.     CALL Open(out,argu.TO,W)
  91.  
  92.     DO i = 1 TO line.0
  93.         IF Left(line.i,1) = ";" THEN ITERATE
  94.         ELSE
  95.             DO
  96.                 IF (Words(suffix.i) = 1 | Words(suffix.i) = 0) THEN
  97.                     DO
  98.                         IF suffix.i = "SUFFIX.I" | suffix.i = '' THEN suffix.i = ''
  99.                         ELSE suffix.i = '*.'||suffix.i
  100.  
  101.                         CALL WriteLN(out,group.i||','||type.i||','||suffix.i||','||utility.i||',')
  102.                     END
  103.                 ELSE
  104.                     DO
  105.  
  106.                         nsuffix = '(*.('
  107.                         DO j = 1 TO Words(suffix.i)
  108.                             nsuffix = Insert(nsuffix,Word(suffix.i,j)||'|')
  109.                         END
  110.                         nsuffix = Strip(nsuffix,T,'|')
  111.                         suffix = nsuffix||'))'
  112.  
  113.                         IF suffix = "SUFFIX" THEN suffix = ''
  114.                         CALL WriteLN(out,group.i||','||type.i||','||suffix||','||utility.i',')
  115.                     END
  116.                 DROP suffix
  117.             END
  118.     END
  119.     CALL WriteLN(out,'@')
  120.     CALL Close(out)
  121. EXIT
  122.  
  123.  
  124. /*\\\*/
  125. /* ///------------------------------- "Errors" ------------------------------- */
  126.  
  127.  
  128. /* BREAK_C */
  129. BREAK_C:
  130.  
  131.   SAY appname||' : ***BREAK'
  132.   EXIT
  133. RETURN
  134.  
  135. /* ARexx HALT */
  136. HALT:
  137.  
  138.   SAY appname||' : HALTED'
  139.   EXIT
  140. RETURN
  141.  
  142. /* Error */
  143. ERROR:
  144. SYNTAX:
  145. FAILURE:
  146.  
  147.   SAY appname||' : Error at line '||SIGL||':  '||SourceLine(SIGL)
  148.   SAY 'Error: '||RC||'  '||ErrorText(RC)
  149.  EXIT
  150. RETURN
  151.  
  152. /*\\\*/
  153.  
  154.